package com.yzqp.generator.util.resolve;

import com.yzqp.generator.util.ParamMap;

/**
 * 变量终结符表达式
 * 　　通常，终结符表达式比较简单，主要处理场景元素和数据的转换。
 * 子类有 纯字符串子类 和 变量表达式
 */
public class VariableTerminalResolveExpression extends TerminalResolveExpression {


    public VariableTerminalResolveExpression(String expressionString, ParamMap paramMap) {
        super(expressionString, paramMap);
    }

    @Override
    public String interpreter() {

        // 开始的下标 即 ${ 的$的下标
        int startIndex = this.expressionString.indexOf("$.{");
        // 结束的下标 即 } 的}的下标
        int endIndex = this.expressionString.indexOf(".}");
        // 变量的key 例如 ${a.b}  key = a.b
        String paramKey = this.expressionString.substring(startIndex + 3, endIndex).trim();

        // 解析出参数的key的值
        String value = paramMap.get(paramKey);
        return value;
    }
}
